<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow: flow::net_flow::Peer_socket_receive_stats_accumulator Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow project: Full implementation reference.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceflow.html">flow</a></li><li class="navelem"><a class="el" href="namespaceflow_1_1net__flow.html">net_flow</a></li><li class="navelem"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html">Peer_socket_receive_stats_accumulator</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">flow::net_flow::Peer_socket_receive_stats_accumulator Class Reference</div></div>
</div><!--header-->
<div class="contents">

<p>A class that keeps a <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" title="A data store that keeps stats about the incoming direction of a Peer_socket connection to another Flo...">Peer_socket_receive_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code>.  
 <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="socket__stats_8hpp_source.html">socket_stats.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for flow::net_flow::Peer_socket_receive_stats_accumulator:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator__inherit__graph.svg" width="307" height="143"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for flow::net_flow::Peer_socket_receive_stats_accumulator:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator__coll__graph.svg" width="576" height="528"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab9c36923e9bb134ec672bff6011ae7b3"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">Peer_socket_receive_stats</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ab9c36923e9bb134ec672bff6011ae7b3">stats</a> () const</td></tr>
<tr class="memdesc:ab9c36923e9bb134ec672bff6011ae7b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to non-modifiable current set of accumulated stats.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ab9c36923e9bb134ec672bff6011ae7b3">More...</a><br /></td></tr>
<tr class="separator:ab9c36923e9bb134ec672bff6011ae7b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e40a6152711f5ee78275180612f71dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd">total_data_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a6e40a6152711f5ee78275180612f71dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates one DATA packet has been received on socket.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd">More...</a><br /></td></tr>
<tr class="separator:a6e40a6152711f5ee78275180612f71dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa44f429fb274ae4fad21efbc88aa9b95"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95">good_data_packet</a> (size_t data)</td></tr>
<tr class="memdesc:aa44f429fb274ae4fad21efbc88aa9b95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, and these data are new and acceptable into Receive buffer assuming there is space.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95">More...</a><br /></td></tr>
<tr class="separator:aa44f429fb274ae4fad21efbc88aa9b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aede48ce8c717e5e8f69accc4d8608613"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aede48ce8c717e5e8f69accc4d8608613">good_data_dropped_buf_overflow_packet</a> (size_t data)</td></tr>
<tr class="memdesc:aede48ce8c717e5e8f69accc4d8608613"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, but these data are dropped due to insufficient Receive buffer space.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aede48ce8c717e5e8f69accc4d8608613">More...</a><br /></td></tr>
<tr class="separator:aede48ce8c717e5e8f69accc4d8608613"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30706cd9e07511f17ec73f6af10926f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a30706cd9e07511f17ec73f6af10926f2">good_data_dropped_reassembly_q_overflow_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a30706cd9e07511f17ec73f6af10926f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, but these data are dropped due to insufficient Receive reassembly queue space (only possible when retransmission is enabled).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a30706cd9e07511f17ec73f6af10926f2">More...</a><br /></td></tr>
<tr class="separator:a30706cd9e07511f17ec73f6af10926f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20f2fe00c0874f075fade075bb82e234"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234">good_data_accepted_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a20f2fe00c0874f075fade075bb82e234"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, and these data are not dropped (so either delivered into Receive buffer or queued for reassembly later).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234">More...</a><br /></td></tr>
<tr class="separator:a20f2fe00c0874f075fade075bb82e234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cc77830ee793725a5bbc1e7660fb230"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a5cc77830ee793725a5bbc1e7660fb230">good_data_delivered_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a5cc77830ee793725a5bbc1e7660fb230"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234" title="Indicates good_data_packet(), and these data are not dropped (so either delivered into Receive buffer...">good_data_accepted_packet()</a>, and these data are delivered into Receive buffer (either immediately upon receipt or upon later reassembly).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a5cc77830ee793725a5bbc1e7660fb230">More...</a><br /></td></tr>
<tr class="separator:a5cc77830ee793725a5bbc1e7660fb230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2ed3438420d6f331549e2decb9f0556"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ae2ed3438420d6f331549e2decb9f0556">good_data_first_qd_packet</a> (size_t data)</td></tr>
<tr class="memdesc:ae2ed3438420d6f331549e2decb9f0556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234" title="Indicates good_data_packet(), and these data are not dropped (so either delivered into Receive buffer...">good_data_accepted_packet()</a>, and these data are, upon receipt, queued for reassembly (not immediately delivered into Receive buffer).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ae2ed3438420d6f331549e2decb9f0556">More...</a><br /></td></tr>
<tr class="separator:ae2ed3438420d6f331549e2decb9f0556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af841e2009909b4166ee1f821e7054eff"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af841e2009909b4166ee1f821e7054eff">late_or_dupe_data_packet</a> (size_t data)</td></tr>
<tr class="memdesc:af841e2009909b4166ee1f821e7054eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, but the arrived data have either already been received before or (more likely) have been considered Dropped by now; therefore data not delivered to Receive buffer.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af841e2009909b4166ee1f821e7054eff">More...</a><br /></td></tr>
<tr class="separator:af841e2009909b4166ee1f821e7054eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab45ad2bb462371067b09ae4f97935a78"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ab45ad2bb462371067b09ae4f97935a78">error_data_packet</a> (size_t data)</td></tr>
<tr class="memdesc:ab45ad2bb462371067b09ae4f97935a78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, but there is some error about the sequence numbers so that they are not acceptable, and the connection did/will close as a result.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ab45ad2bb462371067b09ae4f97935a78">More...</a><br /></td></tr>
<tr class="separator:ab45ad2bb462371067b09ae4f97935a78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31080df078b6408b60fab6f3d8396369"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a31080df078b6408b60fab6f3d8396369">presumed_dropped_data</a> (size_t data)</td></tr>
<tr class="memdesc:a31080df078b6408b60fab6f3d8396369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that one or more unreceived data packets have been considered Dropped due to the number of later packets that have been received.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a31080df078b6408b60fab6f3d8396369">More...</a><br /></td></tr>
<tr class="separator:a31080df078b6408b60fab6f3d8396369"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c3bdef97ca8f7b0450be10b8ac301cd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6c3bdef97ca8f7b0450be10b8ac301cd">total_to_send_ack_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a6c3bdef97ca8f7b0450be10b8ac301cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that an individual acknowledgment for one packet will be sent.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6c3bdef97ca8f7b0450be10b8ac301cd">More...</a><br /></td></tr>
<tr class="separator:a6c3bdef97ca8f7b0450be10b8ac301cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f68edbb903370ec36fa2deac09288ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a7f68edbb903370ec36fa2deac09288ee">good_to_send_ack_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a7f68edbb903370ec36fa2deac09288ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a5cc77830ee793725a5bbc1e7660fb230" title="Indicates good_data_accepted_packet(), and these data are delivered into Receive buffer (either immed...">good_data_delivered_packet()</a> and therefore an individual acknowledgment for this packet will be sent.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a7f68edbb903370ec36fa2deac09288ee">More...</a><br /></td></tr>
<tr class="separator:a7f68edbb903370ec36fa2deac09288ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67e90d9c299777769ad090b24ba060cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a67e90d9c299777769ad090b24ba060cf">late_or_dupe_to_send_ack_packet</a> (size_t data)</td></tr>
<tr class="memdesc:a67e90d9c299777769ad090b24ba060cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af841e2009909b4166ee1f821e7054eff" title="Indicates total_data_packet(), but the arrived data have either already been received before or (more...">late_or_dupe_data_packet()</a> and therefore an individual acknowledgment for this packet will be sent.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a67e90d9c299777769ad090b24ba060cf">More...</a><br /></td></tr>
<tr class="separator:a67e90d9c299777769ad090b24ba060cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a281edb54f707cd408c4ecc8fadee3fba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a281edb54f707cd408c4ecc8fadee3fba">current_pending_to_ack_packets</a> (size_t count)</td></tr>
<tr class="memdesc:a281edb54f707cd408c4ecc8fadee3fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that all incoming data in the current boost.asio handler have been scanned and any ACKs that may be sent in this handler have been sent, and that immediately after that fact, the number of individual acknowledgments (NOTE: not ACK packets but individual acknowledgments therein) is as given in the <code>count</code> argument.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a281edb54f707cd408c4ecc8fadee3fba">More...</a><br /></td></tr>
<tr class="separator:a281edb54f707cd408c4ecc8fadee3fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa3081898671b4f0955f0ad4be4f9376"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aaa3081898671b4f0955f0ad4be4f9376">sent_individual_ack</a> ()</td></tr>
<tr class="memdesc:aaa3081898671b4f0955f0ad4be4f9376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates than one individual acknowledgment of a data packet has been packaged into an ACK packet that will be sent as soon as possible.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aaa3081898671b4f0955f0ad4be4f9376">More...</a><br /></td></tr>
<tr class="separator:aaa3081898671b4f0955f0ad4be4f9376"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1275db157d1009418d91a9e820f486e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a1275db157d1009418d91a9e820f486e9">sent_low_lvl_ack_packet</a> (<a class="el" href="classbool.html">bool</a> rcv_wnd_update_only)</td></tr>
<tr class="memdesc:a1275db157d1009418d91a9e820f486e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates than one low-level ACK packet will be sent as soon as possible.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a1275db157d1009418d91a9e820f486e9">More...</a><br /></td></tr>
<tr class="separator:a1275db157d1009418d91a9e820f486e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af415bbdaaae84a8b74fa0f8c99381e82"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af415bbdaaae84a8b74fa0f8c99381e82">rcv_wnd_recovery_event_start</a> ()</td></tr>
<tr class="memdesc:af415bbdaaae84a8b74fa0f8c99381e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates we seem to have detected that our rcv_wnd went from exhaustion to largely free, and therefore we will now inform the sender of this, so that it can resume sending data.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af415bbdaaae84a8b74fa0f8c99381e82">More...</a><br /></td></tr>
<tr class="separator:af415bbdaaae84a8b74fa0f8c99381e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ed556a39d13d8b1073fabda7a2fc5a1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6ed556a39d13d8b1073fabda7a2fc5a1">rcv_wnd_recovery_event_finish</a> (<a class="el" href="classbool.html">bool</a> success)</td></tr>
<tr class="memdesc:a6ed556a39d13d8b1073fabda7a2fc5a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates that the recovery indicated by last <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af415bbdaaae84a8b74fa0f8c99381e82" title="Indicates we seem to have detected that our rcv_wnd went from exhaustion to largely free,...">rcv_wnd_recovery_event_start()</a> call has finished (we are no longer ACKing sender to advertise receive window).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6ed556a39d13d8b1073fabda7a2fc5a1">More...</a><br /></td></tr>
<tr class="separator:a6ed556a39d13d8b1073fabda7a2fc5a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2753b3e8e3932593fed431771b1df80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ac2753b3e8e3932593fed431771b1df80">buffer_fed</a> (size_t size)</td></tr>
<tr class="memdesc:ac2753b3e8e3932593fed431771b1df80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the Receive buffer was enqueued with data from network (so its <code>data_size()</code> increased).  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#ac2753b3e8e3932593fed431771b1df80">More...</a><br /></td></tr>
<tr class="separator:ac2753b3e8e3932593fed431771b1df80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49544d0d58bbf13d099eb7fb0798f9c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a49544d0d58bbf13d099eb7fb0798f9c6">low_lvl_packet</a> (const std::type_info &amp;type, size_t size)</td></tr>
<tr class="memdesc:a49544d0d58bbf13d099eb7fb0798f9c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates a <code><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a>&amp; p</code> was received with <code>typeid(p) == type</code>, deserialized from a buffer of length <code>size</code> bytes, targeted at the associated socket.  <a href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a49544d0d58bbf13d099eb7fb0798f9c6">More...</a><br /></td></tr>
<tr class="separator:a49544d0d58bbf13d099eb7fb0798f9c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats')"><img src="closed.png" alt="-"/>&#160;Private Member Functions inherited from <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">flow::net_flow::Peer_socket_receive_stats</a></td></tr>
<tr class="memitem:aafe39b306483c4175593c10209280808 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aafe39b306483c4175593c10209280808">Peer_socket_receive_stats</a> ()</td></tr>
<tr class="memdesc:aafe39b306483c4175593c10209280808 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs object by initializing stats to their initial values.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aafe39b306483c4175593c10209280808">More...</a><br /></td></tr>
<tr class="separator:aafe39b306483c4175593c10209280808 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19d651860486de148e6e46466a5048e0 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a19d651860486de148e6e46466a5048e0">output</a> (std::ostream *os) const</td></tr>
<tr class="memdesc:a19d651860486de148e6e46466a5048e0 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outputs the current stats, across multiple lines but not ending with a newline, into the given output stream.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a19d651860486de148e6e46466a5048e0">More...</a><br /></td></tr>
<tr class="separator:a19d651860486de148e6e46466a5048e0 inherit pub_methods_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats')"><img src="closed.png" alt="-"/>&#160;Private Attributes inherited from <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">flow::net_flow::Peer_socket_receive_stats</a></td></tr>
<tr class="memitem:abacc466e97f1d85856572536d67adcde inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceflow.html#a9d9cc2eeb10d398cff5591d446b763b8">Fine_time_pt</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#abacc466e97f1d85856572536d67adcde">m_init_time</a></td></tr>
<tr class="memdesc:abacc466e97f1d85856572536d67adcde inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time this object (or source object from assignment) was made; should be about equal to when socket was made.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#abacc466e97f1d85856572536d67adcde">More...</a><br /></td></tr>
<tr class="separator:abacc466e97f1d85856572536d67adcde inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a132cb2a966ede1bf5fe363e5885a0f64 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a132cb2a966ede1bf5fe363e5885a0f64">m_total_data_size</a></td></tr>
<tr class="memdesc:a132cb2a966ede1bf5fe363e5885a0f64 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes in DATA packets received on socket.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a132cb2a966ede1bf5fe363e5885a0f64">More...</a><br /></td></tr>
<tr class="separator:a132cb2a966ede1bf5fe363e5885a0f64 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a893ca5129ab56fd57de0cdee92e59bd7 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a893ca5129ab56fd57de0cdee92e59bd7">m_total_data_count</a></td></tr>
<tr class="memdesc:a893ca5129ab56fd57de0cdee92e59bd7 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of DATA packets received on socket.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a893ca5129ab56fd57de0cdee92e59bd7">More...</a><br /></td></tr>
<tr class="separator:a893ca5129ab56fd57de0cdee92e59bd7 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70f72081dd9ff7c2c47a938d2a6b041c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a70f72081dd9ff7c2c47a938d2a6b041c">m_good_data_size</a></td></tr>
<tr class="memdesc:a70f72081dd9ff7c2c47a938d2a6b041c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a132cb2a966ede1bf5fe363e5885a0f64" title="Bytes in DATA packets received on socket.">m_total_data_size</a>, the data that were new and acceptable into Receive buffer assuming there was space.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a70f72081dd9ff7c2c47a938d2a6b041c">More...</a><br /></td></tr>
<tr class="separator:a70f72081dd9ff7c2c47a938d2a6b041c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b59e09a406cfdc9f8da89213e18a0c4 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8b59e09a406cfdc9f8da89213e18a0c4">m_good_data_count</a></td></tr>
<tr class="memdesc:a8b59e09a406cfdc9f8da89213e18a0c4 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a893ca5129ab56fd57de0cdee92e59bd7" title="Number of DATA packets received on socket.">m_total_data_count</a>, the data that were new and acceptable into Receive buffer assuming there was space.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8b59e09a406cfdc9f8da89213e18a0c4">More...</a><br /></td></tr>
<tr class="separator:a8b59e09a406cfdc9f8da89213e18a0c4 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3cb56a1cc4e070af33d47ab3ff662801 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3cb56a1cc4e070af33d47ab3ff662801">m_good_data_accepted_size</a></td></tr>
<tr class="memdesc:a3cb56a1cc4e070af33d47ab3ff662801 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a70f72081dd9ff7c2c47a938d2a6b041c" title="Of m_total_data_size, the data that were new and acceptable into Receive buffer assuming there was sp...">m_good_data_size</a>, the data that were not dropped (so either delivered into Receive buffer or queued for reassembly later).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3cb56a1cc4e070af33d47ab3ff662801">More...</a><br /></td></tr>
<tr class="separator:a3cb56a1cc4e070af33d47ab3ff662801 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0be15a545183127725bbd2ebf227e0a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac0be15a545183127725bbd2ebf227e0a">m_good_data_accepted_count</a></td></tr>
<tr class="memdesc:ac0be15a545183127725bbd2ebf227e0a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8b59e09a406cfdc9f8da89213e18a0c4" title="Of m_total_data_count, the data that were new and acceptable into Receive buffer assuming there was s...">m_good_data_count</a>, the data that were not dropped (so either delivered into Receive buffer or queued for reassembly later).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac0be15a545183127725bbd2ebf227e0a">More...</a><br /></td></tr>
<tr class="separator:ac0be15a545183127725bbd2ebf227e0a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cd0a3d7bb93f87bcf6e4cf23755d171 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a0cd0a3d7bb93f87bcf6e4cf23755d171">m_good_data_delivered_size</a></td></tr>
<tr class="memdesc:a0cd0a3d7bb93f87bcf6e4cf23755d171 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3cb56a1cc4e070af33d47ab3ff662801" title="Of m_good_data_size, the data that were not dropped (so either delivered into Receive buffer or queue...">m_good_data_accepted_size</a>, the data that were delivered into Receive buffer (either immediately upon receipt or upon later reassembly).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a0cd0a3d7bb93f87bcf6e4cf23755d171">More...</a><br /></td></tr>
<tr class="separator:a0cd0a3d7bb93f87bcf6e4cf23755d171 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e3501311edb5318fe3b9c8911b61b26 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7e3501311edb5318fe3b9c8911b61b26">m_good_data_delivered_count</a></td></tr>
<tr class="memdesc:a7e3501311edb5318fe3b9c8911b61b26 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac0be15a545183127725bbd2ebf227e0a" title="Of m_good_data_count, the data that were not dropped (so either delivered into Receive buffer or queu...">m_good_data_accepted_count</a>, the data that were delivered into Receive buffer (either immediately upon receipt or upon later reassembly).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7e3501311edb5318fe3b9c8911b61b26">More...</a><br /></td></tr>
<tr class="separator:a7e3501311edb5318fe3b9c8911b61b26 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9df996e495e6181f778dabeec446fd3e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a9df996e495e6181f778dabeec446fd3e">m_good_data_first_qd_size</a></td></tr>
<tr class="memdesc:a9df996e495e6181f778dabeec446fd3e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3cb56a1cc4e070af33d47ab3ff662801" title="Of m_good_data_size, the data that were not dropped (so either delivered into Receive buffer or queue...">m_good_data_accepted_size</a>, the data that were, upon receipt, queued for reassembly (not immediately delivered into Receive buffer).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a9df996e495e6181f778dabeec446fd3e">More...</a><br /></td></tr>
<tr class="separator:a9df996e495e6181f778dabeec446fd3e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefc1dc66a538c0cf28aa620d4e02fdf5 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aefc1dc66a538c0cf28aa620d4e02fdf5">m_good_data_first_qd_count</a></td></tr>
<tr class="memdesc:aefc1dc66a538c0cf28aa620d4e02fdf5 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac0be15a545183127725bbd2ebf227e0a" title="Of m_good_data_count, the data that were not dropped (so either delivered into Receive buffer or queu...">m_good_data_accepted_count</a>, the data that were, upon receipt, queued for reassembly (not immediately delivered into Receive buffer).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aefc1dc66a538c0cf28aa620d4e02fdf5">More...</a><br /></td></tr>
<tr class="separator:aefc1dc66a538c0cf28aa620d4e02fdf5 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacc55c11d8c8e74d4c74a257faea5af1 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aacc55c11d8c8e74d4c74a257faea5af1">m_good_data_dropped_buf_overflow_size</a></td></tr>
<tr class="memdesc:aacc55c11d8c8e74d4c74a257faea5af1 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a70f72081dd9ff7c2c47a938d2a6b041c" title="Of m_total_data_size, the data that were new and acceptable into Receive buffer assuming there was sp...">m_good_data_size</a>, the data that were dropped due to insufficient Receive buffer space.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aacc55c11d8c8e74d4c74a257faea5af1">More...</a><br /></td></tr>
<tr class="separator:aacc55c11d8c8e74d4c74a257faea5af1 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4024ec4c241badb79f8e0735f093c9e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#af4024ec4c241badb79f8e0735f093c9e">m_good_data_dropped_buf_overflow_count</a></td></tr>
<tr class="memdesc:af4024ec4c241badb79f8e0735f093c9e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8b59e09a406cfdc9f8da89213e18a0c4" title="Of m_total_data_count, the data that were new and acceptable into Receive buffer assuming there was s...">m_good_data_count</a>, the data that were dropped due to insufficient Receive buffer space.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#af4024ec4c241badb79f8e0735f093c9e">More...</a><br /></td></tr>
<tr class="separator:af4024ec4c241badb79f8e0735f093c9e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac60c34ed6092ae16ad85224f2ec0f0d0 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac60c34ed6092ae16ad85224f2ec0f0d0">m_good_data_dropped_reassembly_q_overflow_size</a></td></tr>
<tr class="memdesc:ac60c34ed6092ae16ad85224f2ec0f0d0 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a70f72081dd9ff7c2c47a938d2a6b041c" title="Of m_total_data_size, the data that were new and acceptable into Receive buffer assuming there was sp...">m_good_data_size</a>, the data that were dropped due to insufficient Receive reassembly queue space (only possible when retransmission is enabled).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ac60c34ed6092ae16ad85224f2ec0f0d0">More...</a><br /></td></tr>
<tr class="separator:ac60c34ed6092ae16ad85224f2ec0f0d0 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae37bfa34fa9e980357de1073356bedb6 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae37bfa34fa9e980357de1073356bedb6">m_good_data_dropped_reassembly_q_overflow_count</a></td></tr>
<tr class="memdesc:ae37bfa34fa9e980357de1073356bedb6 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8b59e09a406cfdc9f8da89213e18a0c4" title="Of m_total_data_count, the data that were new and acceptable into Receive buffer assuming there was s...">m_good_data_count</a>, the data that were dropped due to insufficient Receive reassembly queue space (only possible when retransmission is enabled).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae37bfa34fa9e980357de1073356bedb6">More...</a><br /></td></tr>
<tr class="separator:ae37bfa34fa9e980357de1073356bedb6 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaab5980acef9c4e7c002daab7397f94a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aaab5980acef9c4e7c002daab7397f94a">m_error_data_size</a></td></tr>
<tr class="memdesc:aaab5980acef9c4e7c002daab7397f94a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a132cb2a966ede1bf5fe363e5885a0f64" title="Bytes in DATA packets received on socket.">m_total_data_size</a>, the data that contained some error about the sequence numbers so that they were not acceptable, and the connection did/will close as a result.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#aaab5980acef9c4e7c002daab7397f94a">More...</a><br /></td></tr>
<tr class="separator:aaab5980acef9c4e7c002daab7397f94a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6f4932b1bc69286febd8277835d034f inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ad6f4932b1bc69286febd8277835d034f">m_error_data_count</a></td></tr>
<tr class="memdesc:ad6f4932b1bc69286febd8277835d034f inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a893ca5129ab56fd57de0cdee92e59bd7" title="Number of DATA packets received on socket.">m_total_data_count</a>, the data that contained some error about the sequence numbers so that they were not acceptable, and the connection did/will close as a result.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ad6f4932b1bc69286febd8277835d034f">More...</a><br /></td></tr>
<tr class="separator:ad6f4932b1bc69286febd8277835d034f inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a470a0b7806640ccf2da849c49996dd15 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a470a0b7806640ccf2da849c49996dd15">m_late_or_dupe_data_size</a></td></tr>
<tr class="memdesc:a470a0b7806640ccf2da849c49996dd15 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a132cb2a966ede1bf5fe363e5885a0f64" title="Bytes in DATA packets received on socket.">m_total_data_size</a>, the data that had either already been received before or (more likely) had been considered Dropped by now; therefore these data not delivered to Receive buffer.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a470a0b7806640ccf2da849c49996dd15">More...</a><br /></td></tr>
<tr class="separator:a470a0b7806640ccf2da849c49996dd15 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7336961c1e0e488649311ada7cf0dc2a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7336961c1e0e488649311ada7cf0dc2a">m_late_or_dupe_data_count</a></td></tr>
<tr class="memdesc:a7336961c1e0e488649311ada7cf0dc2a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a893ca5129ab56fd57de0cdee92e59bd7" title="Number of DATA packets received on socket.">m_total_data_count</a>, the data that had either already been received before or (more likely) had been considered Dropped by now; therefore these data not delivered to Receive buffer.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7336961c1e0e488649311ada7cf0dc2a">More...</a><br /></td></tr>
<tr class="separator:a7336961c1e0e488649311ada7cf0dc2a inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1b46c0670b98a87e106a91758a02f35 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ab1b46c0670b98a87e106a91758a02f35">m_presumed_dropped_data_size</a></td></tr>
<tr class="memdesc:ab1b46c0670b98a87e106a91758a02f35 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total number of bytes in hypothetical data packets that have been considered Dropped due to the number of later packets that have been received.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ab1b46c0670b98a87e106a91758a02f35">More...</a><br /></td></tr>
<tr class="separator:ab1b46c0670b98a87e106a91758a02f35 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6946add6977b28e244c69606fd14db03 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a6946add6977b28e244c69606fd14db03">m_total_to_send_acks_data_size</a></td></tr>
<tr class="memdesc:a6946add6977b28e244c69606fd14db03 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes in received DATA packets acknowledged thus far or that have been received and are pending to be acknowledged.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a6946add6977b28e244c69606fd14db03">More...</a><br /></td></tr>
<tr class="separator:a6946add6977b28e244c69606fd14db03 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66c7d92f84d1a1f7b1039a926b1a8f00 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a66c7d92f84d1a1f7b1039a926b1a8f00">m_total_to_send_acks_count</a></td></tr>
<tr class="memdesc:a66c7d92f84d1a1f7b1039a926b1a8f00 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of DATA packets acknowledged thus far or that have been received and are pending to be acknowledged.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a66c7d92f84d1a1f7b1039a926b1a8f00">More...</a><br /></td></tr>
<tr class="separator:a66c7d92f84d1a1f7b1039a926b1a8f00 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3aeb3e98e29538c66d045f7f2eac506e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3aeb3e98e29538c66d045f7f2eac506e">m_good_to_send_acks_data_size</a></td></tr>
<tr class="memdesc:a3aeb3e98e29538c66d045f7f2eac506e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a6946add6977b28e244c69606fd14db03" title="Bytes in received DATA packets acknowledged thus far or that have been received and are pending to be...">m_total_to_send_acks_data_size</a>, the data that also satisfy the criteria in <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a0cd0a3d7bb93f87bcf6e4cf23755d171" title="Of m_good_data_accepted_size, the data that were delivered into Receive buffer (either immediately up...">m_good_data_delivered_size</a>.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a3aeb3e98e29538c66d045f7f2eac506e">More...</a><br /></td></tr>
<tr class="separator:a3aeb3e98e29538c66d045f7f2eac506e inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5507bc7b5b9360f9b085452d85582530 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a5507bc7b5b9360f9b085452d85582530">m_good_to_send_acks_count</a></td></tr>
<tr class="memdesc:a5507bc7b5b9360f9b085452d85582530 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a66c7d92f84d1a1f7b1039a926b1a8f00" title="Number of DATA packets acknowledged thus far or that have been received and are pending to be acknowl...">m_total_to_send_acks_count</a>, the data that also satisfy the criteria in <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7e3501311edb5318fe3b9c8911b61b26" title="Of m_good_data_accepted_count, the data that were delivered into Receive buffer (either immediately u...">m_good_data_delivered_count</a>.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a5507bc7b5b9360f9b085452d85582530">More...</a><br /></td></tr>
<tr class="separator:a5507bc7b5b9360f9b085452d85582530 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8676c0e26253d78de31f1af00e44a0c9 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8676c0e26253d78de31f1af00e44a0c9">m_late_or_dupe_to_send_acks_data_size</a></td></tr>
<tr class="memdesc:a8676c0e26253d78de31f1af00e44a0c9 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a6946add6977b28e244c69606fd14db03" title="Bytes in received DATA packets acknowledged thus far or that have been received and are pending to be...">m_total_to_send_acks_data_size</a>, the data that also satisfy the criteria in <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a470a0b7806640ccf2da849c49996dd15" title="Of m_total_data_size, the data that had either already been received before or (more likely) had been...">m_late_or_dupe_data_size</a>.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8676c0e26253d78de31f1af00e44a0c9">More...</a><br /></td></tr>
<tr class="separator:a8676c0e26253d78de31f1af00e44a0c9 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab85e49689ffd08900b3ade6a061ff338 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ab85e49689ffd08900b3ade6a061ff338">m_late_or_dupe_to_send_acks_count</a></td></tr>
<tr class="memdesc:ab85e49689ffd08900b3ade6a061ff338 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a66c7d92f84d1a1f7b1039a926b1a8f00" title="Number of DATA packets acknowledged thus far or that have been received and are pending to be acknowl...">m_total_to_send_acks_count</a>, the data that also satisfy the criteria in <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7336961c1e0e488649311ada7cf0dc2a" title="Of m_total_data_count, the data that had either already been received before or (more likely) had bee...">m_late_or_dupe_data_count</a>.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ab85e49689ffd08900b3ade6a061ff338">More...</a><br /></td></tr>
<tr class="separator:ab85e49689ffd08900b3ade6a061ff338 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a947c1ef859093cc52c257f006c687571 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a947c1ef859093cc52c257f006c687571">m_current_pending_acks_count</a></td></tr>
<tr class="memdesc:a947c1ef859093cc52c257f006c687571 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a66c7d92f84d1a1f7b1039a926b1a8f00" title="Number of DATA packets acknowledged thus far or that have been received and are pending to be acknowl...">m_total_to_send_acks_count</a>, the packets that have not yet been sent to the sender (pending acknowledgments).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a947c1ef859093cc52c257f006c687571">More...</a><br /></td></tr>
<tr class="separator:a947c1ef859093cc52c257f006c687571 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ce8a80316f19b960ce99a92d8c43e92 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a4ce8a80316f19b960ce99a92d8c43e92">m_delayed_acks_count</a></td></tr>
<tr class="memdesc:a4ce8a80316f19b960ce99a92d8c43e92 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">The total number of individual packet acknowledgments whose sending was delayed (via delayed ACK mechanism) beyond the handler in which they were originally constructed.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a4ce8a80316f19b960ce99a92d8c43e92">More...</a><br /></td></tr>
<tr class="separator:a4ce8a80316f19b960ce99a92d8c43e92 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77855f9a844be7513158191875d1c4f2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a77855f9a844be7513158191875d1c4f2">m_sent_individual_acks_count</a></td></tr>
<tr class="memdesc:a77855f9a844be7513158191875d1c4f2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of DATA packets such that for a given packet an individual acknowledgment has been packaged into an ACK packet that has been sent or will be sent as soon as possible.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a77855f9a844be7513158191875d1c4f2">More...</a><br /></td></tr>
<tr class="separator:a77855f9a844be7513158191875d1c4f2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7de6b1c501fee009e63639a177589a0c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7de6b1c501fee009e63639a177589a0c">m_sent_low_lvl_acks_count</a></td></tr>
<tr class="memdesc:a7de6b1c501fee009e63639a177589a0c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of low-level ACK packets that have been sent or will be sent as soon as possible.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7de6b1c501fee009e63639a177589a0c">More...</a><br /></td></tr>
<tr class="separator:a7de6b1c501fee009e63639a177589a0c inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2d0497f399e890eb6cec9bc85427d63 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae2d0497f399e890eb6cec9bc85427d63">m_rcv_wnd_recovery_count</a></td></tr>
<tr class="memdesc:ae2d0497f399e890eb6cec9bc85427d63 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of times we detected (heuristically but fairly reliably) that the following event occurred: our rcv_wnd (or free Receive buffer space) was exhausted; but then significatly freed by application-layer <code>receive()</code> calls.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae2d0497f399e890eb6cec9bc85427d63">More...</a><br /></td></tr>
<tr class="separator:ae2d0497f399e890eb6cec9bc85427d63 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11b5b29017bd45bdf822282d75c61bfc inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a11b5b29017bd45bdf822282d75c61bfc">m_rcv_wnd_recovery_success_count</a></td></tr>
<tr class="memdesc:a11b5b29017bd45bdf822282d75c61bfc inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae2d0497f399e890eb6cec9bc85427d63" title="Number of times we detected (heuristically but fairly reliably) that the following event occurred: ou...">m_rcv_wnd_recovery_count</a>, the number of times the recovery was successful: i.e., resulted in more data packets arriving from sender.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a11b5b29017bd45bdf822282d75c61bfc">More...</a><br /></td></tr>
<tr class="separator:a11b5b29017bd45bdf822282d75c61bfc inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49f930549d48f8dd8239080707a236c2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a49f930549d48f8dd8239080707a236c2">m_rcv_wnd_recovery_timeout_count</a></td></tr>
<tr class="memdesc:a49f930549d48f8dd8239080707a236c2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#ae2d0497f399e890eb6cec9bc85427d63" title="Number of times we detected (heuristically but fairly reliably) that the following event occurred: ou...">m_rcv_wnd_recovery_count</a>, the number of times the recovery failed: i.e., resulted in a certain lengthy timeout firing before any more data packets arrived from sender.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a49f930549d48f8dd8239080707a236c2">More...</a><br /></td></tr>
<tr class="separator:a49f930549d48f8dd8239080707a236c2 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95629aa4094c8e9496081df11ca43787 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a95629aa4094c8e9496081df11ca43787">m_sent_low_lvl_rcv_wnd_only_acks_count</a></td></tr>
<tr class="memdesc:a95629aa4094c8e9496081df11ca43787 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Of <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a7de6b1c501fee009e63639a177589a0c" title="Number of low-level ACK packets that have been sent or will be sent as soon as possible.">m_sent_low_lvl_acks_count</a>, the packets that contained no individual acknowledgments but are to be sent only to advertise rcv_wnd.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a95629aa4094c8e9496081df11ca43787">More...</a><br /></td></tr>
<tr class="separator:a95629aa4094c8e9496081df11ca43787 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79a4c8e18f52ec046b885d4d691febb8 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a79a4c8e18f52ec046b885d4d691febb8">m_max_buf_data_size</a></td></tr>
<tr class="memdesc:a79a4c8e18f52ec046b885d4d691febb8 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of bytes in the Receive buffer so far.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a79a4c8e18f52ec046b885d4d691febb8">More...</a><br /></td></tr>
<tr class="separator:a79a4c8e18f52ec046b885d4d691febb8 inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afced8fb805507e2ac53bcb6b55441c0d inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::type_index, uint64_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#afced8fb805507e2ac53bcb6b55441c0d">m_low_lvl_packet_size_by_type</a></td></tr>
<tr class="memdesc:afced8fb805507e2ac53bcb6b55441c0d inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total size in serialized form of low-level packets received targeted at this socket, split up by polymorphic sub-type ID <code>type_index(typeid(p))</code>, where <code>p</code> is a reference to an instance of a sub-type of <a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a> (or, in English, by packet type).  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#afced8fb805507e2ac53bcb6b55441c0d">More...</a><br /></td></tr>
<tr class="separator:afced8fb805507e2ac53bcb6b55441c0d inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8112a269f6cefddb4cdba4fd2995e05b inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">std::map&lt; std::type_index, uint64_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8112a269f6cefddb4cdba4fd2995e05b">m_low_lvl_packet_count_by_type</a></td></tr>
<tr class="memdesc:a8112a269f6cefddb4cdba4fd2995e05b inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Count of low-level packets received targeted at this socket, split up by packet type similarly to <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#afced8fb805507e2ac53bcb6b55441c0d" title="Total size in serialized form of low-level packets received targeted at this socket,...">m_low_lvl_packet_size_by_type</a>.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a8112a269f6cefddb4cdba4fd2995e05b">More...</a><br /></td></tr>
<tr class="separator:a8112a269f6cefddb4cdba4fd2995e05b inherit pub_attribs_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td colspan="2" onclick="javascript:toggleInherit('related_structflow_1_1net__flow_1_1Peer__socket__receive__stats')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">flow::net_flow::Peer_socket_receive_stats</a></td></tr>
<tr class="memitem:a26fb85d618cb12e9ee1b22f52bdfcaa5 inherit related_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a26fb85d618cb12e9ee1b22f52bdfcaa5">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">Peer_socket_receive_stats</a> &amp;stats)</td></tr>
<tr class="memdesc:a26fb85d618cb12e9ee1b22f52bdfcaa5 inherit related_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints string representation of the stats in the given stats object to the standard <code>ostream</code> and returns the latter.  <a href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html#a26fb85d618cb12e9ee1b22f52bdfcaa5">More...</a><br /></td></tr>
<tr class="separator:a26fb85d618cb12e9ee1b22f52bdfcaa5 inherit related_structflow_1_1net__flow_1_1Peer__socket__receive__stats"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p >A class that keeps a <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" title="A data store that keeps stats about the incoming direction of a Peer_socket connection to another Flo...">Peer_socket_receive_stats</a> data store, includes methods to conveniently accumulate data in it, and provides output to <code>ostream</code>. </p>
<p >Any object of this class is intended to have a 1-to-1 relationship with a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a>. The interface is intentionally simple; the class keeps some counters and limited auxilliary state (such as creation time); the <a class="el" href="classflow_1_1net__flow_1_1Node.html" title="An object of this class is a single Flow-protocol networking node, in the sense that: (1) it has a di...">Node</a> informs the class of events (like "DATA packet received"), counts of which are stored in the class and are accessible through the interface (at least through the <code>ostream</code> output operator).</p>
<p >As usual, invoke the event handler methods of the class whenever the appropriate events occur. Failing to do so will obviously result in wrong statistics.</p>
<p >The class intentionally does not take a reference to a <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> and avoids logging; it is a simple accumulating data store.</p>
<h3>Thread safety</h3>
<p >Same as any <code>struct</code> with no locking done therein.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html" title="A data store that keeps stats about the incoming direction of a Peer_socket connection to another Flo...">Peer_socket_receive_stats</a> </dd></dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8hpp_source.html#l00049">49</a> of file <a class="el" href="socket__stats_8hpp_source.html">socket_stats.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac2753b3e8e3932593fed431771b1df80" name="ac2753b3e8e3932593fed431771b1df80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2753b3e8e3932593fed431771b1df80">&#9670;&nbsp;</a></span>buffer_fed()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::buffer_fed </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates the Receive buffer was enqueued with data from network (so its <code>data_size()</code> increased). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>The # of bytes in the buffer after the enqueueing. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00148">148</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00260">flow::net_flow::Peer_socket_receive_stats::m_max_buf_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01118">flow::net_flow::Node::sock_data_to_rcv_buf_unless_overflow()</a>, and <a class="el" href="peer__socket_8cpp_source.html#l01456">flow::net_flow::Node::sock_slide_rcv_next_seq_num()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_ac2753b3e8e3932593fed431771b1df80_icgraph.svg" width="363" height="131"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a281edb54f707cd408c4ecc8fadee3fba" name="a281edb54f707cd408c4ecc8fadee3fba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a281edb54f707cd408c4ecc8fadee3fba">&#9670;&nbsp;</a></span>current_pending_to_ack_packets()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::current_pending_to_ack_packets </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>count</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that all incoming data in the current boost.asio handler have been scanned and any ACKs that may be sent in this handler have been sent, and that immediately after that fact, the number of individual acknowledgments (NOTE: not ACK packets but individual acknowledgments therein) is as given in the <code>count</code> argument. </p>
<p >Note that unlike most methods in this class, this indicates the current state as opposed to an event. Internally this is necessary to maintain a total count of individual acks that have ever been delayed (without double-counting).</p>
<p >The current mechanism is that, in a given boost.asio low-level receive handler, we will either flush all the acks that have built up over the last N (where N &gt;= 1, including the current one) handlers, or we will queue up 0 or more to send in a later handler. (We do not add some more + flush some but not all, nor do we just flush some but not all.) Thus, in the 2 cases just described, we'd call this method with count = 0 or some value &gt;= the value from the last time, respectively.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">count</td><td>Number of packets. This should be either zero or &gt;= the last value passed into the same call for this object. Otherwise assertion trips. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00104">104</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00209">flow::net_flow::Peer_socket_receive_stats::m_current_pending_acks_count</a>, and <a class="el" href="info_8hpp_source.html#l00215">flow::net_flow::Peer_socket_receive_stats::m_delayed_acks_count</a>.</p>

</div>
</div>
<a id="ab45ad2bb462371067b09ae4f97935a78" name="ab45ad2bb462371067b09ae4f97935a78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab45ad2bb462371067b09ae4f97935a78">&#9670;&nbsp;</a></span>error_data_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::error_data_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, but there is some error about the sequence numbers so that they are not acceptable, and the connection did/will close as a result. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00069">69</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00150">flow::net_flow::Peer_socket_receive_stats::m_error_data_count</a>, and <a class="el" href="info_8hpp_source.html#l00145">flow::net_flow::Peer_socket_receive_stats::m_error_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>, and <a class="el" href="peer__socket_8cpp_source.html#l00810">flow::net_flow::Node::sock_categorize_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_ab45ad2bb462371067b09ae4f97935a78_icgraph.svg" width="1168" height="156"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a20f2fe00c0874f075fade075bb82e234" name="a20f2fe00c0874f075fade075bb82e234"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20f2fe00c0874f075fade075bb82e234">&#9670;&nbsp;</a></span>good_data_accepted_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_accepted_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, and these data are not dropped (so either delivered into Receive buffer or queued for reassembly later). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00051">51</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00096">flow::net_flow::Peer_socket_receive_stats::m_good_data_accepted_count</a>, and <a class="el" href="info_8hpp_source.html#l00091">flow::net_flow::Peer_socket_receive_stats::m_good_data_accepted_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01118">flow::net_flow::Node::sock_data_to_rcv_buf_unless_overflow()</a>, and <a class="el" href="peer__socket_8cpp_source.html#l01305">flow::net_flow::Node::sock_data_to_reassembly_q_unless_overflow()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a20f2fe00c0874f075fade075bb82e234_icgraph.svg" width="390" height="131"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a5cc77830ee793725a5bbc1e7660fb230" name="a5cc77830ee793725a5bbc1e7660fb230"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5cc77830ee793725a5bbc1e7660fb230">&#9670;&nbsp;</a></span>good_data_delivered_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_delivered_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234" title="Indicates good_data_packet(), and these data are not dropped (so either delivered into Receive buffer...">good_data_accepted_packet()</a>, and these data are delivered into Receive buffer (either immediately upon receipt or upon later reassembly). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00057">57</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00107">flow::net_flow::Peer_socket_receive_stats::m_good_data_delivered_count</a>, and <a class="el" href="info_8hpp_source.html#l00102">flow::net_flow::Peer_socket_receive_stats::m_good_data_delivered_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01118">flow::net_flow::Node::sock_data_to_rcv_buf_unless_overflow()</a>, and <a class="el" href="peer__socket_8cpp_source.html#l01456">flow::net_flow::Node::sock_slide_rcv_next_seq_num()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a5cc77830ee793725a5bbc1e7660fb230_icgraph.svg" width="366" height="131"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aede48ce8c717e5e8f69accc4d8608613" name="aede48ce8c717e5e8f69accc4d8608613"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aede48ce8c717e5e8f69accc4d8608613">&#9670;&nbsp;</a></span>good_data_dropped_buf_overflow_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_dropped_buf_overflow_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, but these data are dropped due to insufficient Receive buffer space. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00039">39</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00128">flow::net_flow::Peer_socket_receive_stats::m_good_data_dropped_buf_overflow_count</a>, and <a class="el" href="info_8hpp_source.html#l00124">flow::net_flow::Peer_socket_receive_stats::m_good_data_dropped_buf_overflow_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01118">flow::net_flow::Node::sock_data_to_rcv_buf_unless_overflow()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_aede48ce8c717e5e8f69accc4d8608613_icgraph.svg" width="395" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a30706cd9e07511f17ec73f6af10926f2" name="a30706cd9e07511f17ec73f6af10926f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30706cd9e07511f17ec73f6af10926f2">&#9670;&nbsp;</a></span>good_data_dropped_reassembly_q_overflow_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_dropped_reassembly_q_overflow_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a>, but these data are dropped due to insufficient Receive reassembly queue space (only possible when retransmission is enabled). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00045">45</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00139">flow::net_flow::Peer_socket_receive_stats::m_good_data_dropped_reassembly_q_overflow_count</a>, and <a class="el" href="info_8hpp_source.html#l00134">flow::net_flow::Peer_socket_receive_stats::m_good_data_dropped_reassembly_q_overflow_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01305">flow::net_flow::Node::sock_data_to_reassembly_q_unless_overflow()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a30706cd9e07511f17ec73f6af10926f2_icgraph.svg" width="475" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="ae2ed3438420d6f331549e2decb9f0556" name="ae2ed3438420d6f331549e2decb9f0556"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2ed3438420d6f331549e2decb9f0556">&#9670;&nbsp;</a></span>good_data_first_qd_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_first_qd_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a20f2fe00c0874f075fade075bb82e234" title="Indicates good_data_packet(), and these data are not dropped (so either delivered into Receive buffer...">good_data_accepted_packet()</a>, and these data are, upon receipt, queued for reassembly (not immediately delivered into Receive buffer). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00063">63</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00118">flow::net_flow::Peer_socket_receive_stats::m_good_data_first_qd_count</a>, and <a class="el" href="info_8hpp_source.html#l00113">flow::net_flow::Peer_socket_receive_stats::m_good_data_first_qd_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01305">flow::net_flow::Node::sock_data_to_reassembly_q_unless_overflow()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_ae2ed3438420d6f331549e2decb9f0556_icgraph.svg" width="390" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aa44f429fb274ae4fad21efbc88aa9b95" name="aa44f429fb274ae4fad21efbc88aa9b95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa44f429fb274ae4fad21efbc88aa9b95">&#9670;&nbsp;</a></span>good_data_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_data_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, and these data are new and acceptable into Receive buffer assuming there is space. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00033">33</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00085">flow::net_flow::Peer_socket_receive_stats::m_good_data_count</a>, and <a class="el" href="info_8hpp_source.html#l00083">flow::net_flow::Peer_socket_receive_stats::m_good_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_aa44f429fb274ae4fad21efbc88aa9b95_icgraph.svg" width="1171" height="120"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a7f68edbb903370ec36fa2deac09288ee" name="a7f68edbb903370ec36fa2deac09288ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f68edbb903370ec36fa2deac09288ee">&#9670;&nbsp;</a></span>good_to_send_ack_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::good_to_send_ack_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a5cc77830ee793725a5bbc1e7660fb230" title="Indicates good_data_accepted_packet(), and these data are delivered into Receive buffer (either immed...">good_data_delivered_packet()</a> and therefore an individual acknowledgment for this packet will be sent. </p>
<p >Note that <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#aa44f429fb274ae4fad21efbc88aa9b95" title="Indicates total_data_packet(), and these data are new and acceptable into Receive buffer assuming the...">good_data_packet()</a> alone does not necessarily mean that an acknowledgment will be sent in response (namely if we have to drop the packet due to insufficient buffer space).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00092">92</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00191">flow::net_flow::Peer_socket_receive_stats::m_good_to_send_acks_count</a>, and <a class="el" href="info_8hpp_source.html#l00186">flow::net_flow::Peer_socket_receive_stats::m_good_to_send_acks_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a7f68edbb903370ec36fa2deac09288ee_icgraph.svg" width="1156" height="120"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="af841e2009909b4166ee1f821e7054eff" name="af841e2009909b4166ee1f821e7054eff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af841e2009909b4166ee1f821e7054eff">&#9670;&nbsp;</a></span>late_or_dupe_data_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::late_or_dupe_data_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#a6e40a6152711f5ee78275180612f71dd" title="Indicates one DATA packet has been received on socket.">total_data_packet()</a>, but the arrived data have either already been received before or (more likely) have been considered Dropped by now; therefore data not delivered to Receive buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00075">75</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00161">flow::net_flow::Peer_socket_receive_stats::m_late_or_dupe_data_count</a>, and <a class="el" href="info_8hpp_source.html#l00156">flow::net_flow::Peer_socket_receive_stats::m_late_or_dupe_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_af841e2009909b4166ee1f821e7054eff_icgraph.svg" width="1150" height="120"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a67e90d9c299777769ad090b24ba060cf" name="a67e90d9c299777769ad090b24ba060cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a67e90d9c299777769ad090b24ba060cf">&#9670;&nbsp;</a></span>late_or_dupe_to_send_ack_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::late_or_dupe_to_send_ack_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af841e2009909b4166ee1f821e7054eff" title="Indicates total_data_packet(), but the arrived data have either already been received before or (more...">late_or_dupe_data_packet()</a> and therefore an individual acknowledgment for this packet will be sent. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00098">98</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00203">flow::net_flow::Peer_socket_receive_stats::m_late_or_dupe_to_send_acks_count</a>, and <a class="el" href="info_8hpp_source.html#l00198">flow::net_flow::Peer_socket_receive_stats::m_late_or_dupe_to_send_acks_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a67e90d9c299777769ad090b24ba060cf_icgraph.svg" width="1179" height="120"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a49544d0d58bbf13d099eb7fb0798f9c6" name="a49544d0d58bbf13d099eb7fb0798f9c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49544d0d58bbf13d099eb7fb0798f9c6">&#9670;&nbsp;</a></span>low_lvl_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::low_lvl_packet </td>
          <td>(</td>
          <td class="paramtype">const std::type_info &amp;&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates a <code><a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a>&amp; p</code> was received with <code>typeid(p) == type</code>, deserialized from a buffer of length <code>size</code> bytes, targeted at the associated socket. </p>
<p >Caveat: Some packets may not be targeted at any particular socket; probably malformed. They would not be counted here.</p>
<p >Caveat: SYN counts; but note that the <a class="el" href="classflow_1_1net__flow_1_1Peer__socket.html" title="A peer (non-server) socket operating over the Flow network protocol, with optional stream-of-bytes an...">Peer_socket</a> with which this call is associated would need to first be created before making the call.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">type</td><td><code>typeid(p)</code>, where p refers to an instance of a concrete <a class="el" href="structflow_1_1net__flow_1_1Low__lvl__packet.html" title="Internal net_flow struct that encapsulates the Flow-protocol low-level packet structure and serves as...">Low_lvl_packet</a> sub-type. </td></tr>
    <tr><td class="paramname">size</td><td>Datagram contents' size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00153">153</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00273">flow::net_flow::Peer_socket_receive_stats::m_low_lvl_packet_count_by_type</a>, and <a class="el" href="info_8hpp_source.html#l00267">flow::net_flow::Peer_socket_receive_stats::m_low_lvl_packet_size_by_type</a>.</p>

</div>
</div>
<a id="a31080df078b6408b60fab6f3d8396369" name="a31080df078b6408b60fab6f3d8396369"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31080df078b6408b60fab6f3d8396369">&#9670;&nbsp;</a></span>presumed_dropped_data()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::presumed_dropped_data </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that one or more unreceived data packets have been considered Dropped due to the number of later packets that have been received. </p>
<p >For each such packet that does arrive in the future (though unlikely), <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af841e2009909b4166ee1f821e7054eff" title="Indicates total_data_packet(), but the arrived data have either already been received before or (more...">late_or_dupe_data_packet()</a> will be called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00081">81</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00168">flow::net_flow::Peer_socket_receive_stats::m_presumed_dropped_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l01229">flow::net_flow::Node::sock_track_new_data_after_gap_rexmit_off()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a31080df078b6408b60fab6f3d8396369_icgraph.svg" width="363" height="71"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a6ed556a39d13d8b1073fabda7a2fc5a1" name="a6ed556a39d13d8b1073fabda7a2fc5a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6ed556a39d13d8b1073fabda7a2fc5a1">&#9670;&nbsp;</a></span>rcv_wnd_recovery_event_finish()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::rcv_wnd_recovery_event_finish </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>success</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that the recovery indicated by last <a class="el" href="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator.html#af415bbdaaae84a8b74fa0f8c99381e82" title="Indicates we seem to have detected that our rcv_wnd went from exhaustion to largely free,...">rcv_wnd_recovery_event_start()</a> call has finished (we are no longer ACKing sender to advertise receive window). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">success</td><td><code>true</code> if recovery successful (sender has sent more DATA packets); <code>false</code> if recovery failed (we stopped due to exceeding long timeout). </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00143">143</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00243">flow::net_flow::Peer_socket_receive_stats::m_rcv_wnd_recovery_success_count</a>, and <a class="el" href="info_8hpp_source.html#l00251">flow::net_flow::Peer_socket_receive_stats::m_rcv_wnd_recovery_timeout_count</a>.</p>

</div>
</div>
<a id="af415bbdaaae84a8b74fa0f8c99381e82" name="af415bbdaaae84a8b74fa0f8c99381e82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af415bbdaaae84a8b74fa0f8c99381e82">&#9670;&nbsp;</a></span>rcv_wnd_recovery_event_start()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::rcv_wnd_recovery_event_start </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates we seem to have detected that our rcv_wnd went from exhaustion to largely free, and therefore we will now inform the sender of this, so that it can resume sending data. </p>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00138">138</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00237">flow::net_flow::Peer_socket_receive_stats::m_rcv_wnd_recovery_count</a>.</p>

</div>
</div>
<a id="aaa3081898671b4f0955f0ad4be4f9376" name="aaa3081898671b4f0955f0ad4be4f9376"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa3081898671b4f0955f0ad4be4f9376">&#9670;&nbsp;</a></span>sent_individual_ack()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::sent_individual_ack </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates than one individual acknowledgment of a data packet has been packaged into an ACK packet that will be sent as soon as possible. </p>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00124">124</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00221">flow::net_flow::Peer_socket_receive_stats::m_sent_individual_acks_count</a>.</p>

</div>
</div>
<a id="a1275db157d1009418d91a9e820f486e9" name="a1275db157d1009418d91a9e820f486e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1275db157d1009418d91a9e820f486e9">&#9670;&nbsp;</a></span>sent_low_lvl_ack_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::sent_low_lvl_ack_packet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classbool.html">bool</a>&#160;</td>
          <td class="paramname"><em>rcv_wnd_update_only</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates than one low-level ACK packet will be sent as soon as possible. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rcv_wnd_update_only</td><td><code>true</code> if and only if this ACK contains no individual acknowledgments; i.e., it is sent only with the purpose of advertising rcv_wnd. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00129">129</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00224">flow::net_flow::Peer_socket_receive_stats::m_sent_low_lvl_acks_count</a>, and <a class="el" href="info_8hpp_source.html#l00257">flow::net_flow::Peer_socket_receive_stats::m_sent_low_lvl_rcv_wnd_only_acks_count</a>.</p>

</div>
</div>
<a id="ab9c36923e9bb134ec672bff6011ae7b3" name="ab9c36923e9bb134ec672bff6011ae7b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9c36923e9bb134ec672bff6011ae7b3">&#9670;&nbsp;</a></span>stats()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structflow_1_1net__flow_1_1Peer__socket__receive__stats.html">Peer_socket_receive_stats</a> &amp; flow::net_flow::Peer_socket_receive_stats_accumulator::stats </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns reference to non-modifiable current set of accumulated stats. </p>
<dl class="section return"><dt>Returns</dt><dd>Ditto. </dd></dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00161">161</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

</div>
</div>
<a id="a6e40a6152711f5ee78275180612f71dd" name="a6e40a6152711f5ee78275180612f71dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e40a6152711f5ee78275180612f71dd">&#9670;&nbsp;</a></span>total_data_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::total_data_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates one DATA packet has been received on socket. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00027">27</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00080">flow::net_flow::Peer_socket_receive_stats::m_total_data_count</a>, and <a class="el" href="info_8hpp_source.html#l00078">flow::net_flow::Peer_socket_receive_stats::m_total_data_size</a>.</p>

<p class="reference">Referenced by <a class="el" href="peer__socket_8cpp_source.html#l00545">flow::net_flow::Node::handle_data_to_established()</a>.</p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1net__flow_1_1Peer__socket__receive__stats__accumulator_a6e40a6152711f5ee78275180612f71dd_icgraph.svg" width="1168" height="120"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a6c3bdef97ca8f7b0450be10b8ac301cd" name="a6c3bdef97ca8f7b0450be10b8ac301cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c3bdef97ca8f7b0450be10b8ac301cd">&#9670;&nbsp;</a></span>total_to_send_ack_packet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void flow::net_flow::Peer_socket_receive_stats_accumulator::total_to_send_ack_packet </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicates that an individual acknowledgment for one packet will be sent. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>User data size. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="socket__stats_8cpp_source.html#l00086">86</a> of file <a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a>.</p>

<p class="reference">References <a class="el" href="info_8hpp_source.html#l00179">flow::net_flow::Peer_socket_receive_stats::m_total_to_send_acks_count</a>, and <a class="el" href="info_8hpp_source.html#l00174">flow::net_flow::Peer_socket_receive_stats::m_total_to_send_acks_data_size</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>net_flow/detail/stats/<a class="el" href="socket__stats_8hpp_source.html">socket_stats.hpp</a></li>
<li>net_flow/detail/stats/<a class="el" href="socket__stats_8cpp_source.html">socket_stats.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 28 2025 22:55:36 for Flow by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
